## Check that llvm-objcopy reports a suitable error when it
## encounters invalid input during reading.

## Failed to read section data.
# RUN: yaml2obj %s --docnum=1 -o %t1
# RUN: not llvm-objcopy %t1 %t1.out 2>&1 | FileCheck %s -DFILE=%t1 --check-prefix=ERROR1

# ERROR1: error: '[[FILE]]': The end of the file was unexpectedly encountered: section data with offset 0x70 and size 0x4 goes past the end of the file

--- !XCOFF
FileHeader:
  MagicNumber: 0x01DF
Sections:
  - SectionData:      '00007400'
    FileOffsetToData: 0x70

## Failed to read relocations.
# RUN: yaml2obj %s --docnum=2 -o %t2
# RUN: not llvm-objcopy %t2 %t2.out 2>&1 | FileCheck %s -DFILE=%t2 --check-prefix=ERROR2

# ERROR2: error: '[[FILE]]': The end of the file was unexpectedly encountered: relocations with offset 0x3c and size 0x1e go past the end of the file

--- !XCOFF
FileHeader:
  MagicNumber: 0x01DF
Sections:
  - NumberOfRelocations: 0x3
    Relocations:
      - Address: 0xE
        Symbol:  0x12
        Info:    0xF
        Type:    0x3

## Failed to read the symbols.
# RUN: yaml2obj %s --docnum=3 -o %t3
# RUN: not llvm-objcopy %t3 %t3.out 2>&1 | FileCheck %s -DFILE=%t3 --check-prefix=ERROR3

# ERROR3: error: '[[FILE]]': The end of the file was unexpectedly encountered: symbol table with offset 0x15 and size 0x24 goes past the end of the file

--- !XCOFF
FileHeader:
  MagicNumber:         0x01DF
  OffsetToSymbolTable: 0x15
Symbols:
  - Name:         foo
    AuxEntries:
      - Type: AUX_CSECT
